home *** CD-ROM | disk | FTP | other *** search
- """Utility routines depending on the finder."""
-
- import Finder_7_0_Suite
- import aetools
- import MacOS
- import sys
- import macfs
-
- SIGNATURE='MACS'
-
- class Finder(aetools.TalkTo, Finder_7_0_Suite.Finder_7_0_Suite):
- pass
-
- _finder_talker = None
-
- def _getfinder():
- global _finder_talker
- if not _finder_talker:
- _finder_talker = Finder(SIGNATURE)
- return _finder_talker
-
- def launch(file):
- """Open a file thru the finder. Specify file by name or fsspec"""
- finder = _getfinder()
- fss = macfs.FSSpec(file)
- vRefNum, parID, name = fss.as_tuple()
- dir_fss = macfs.FSSpec((vRefNum, parID, ''))
- file_alias = fss.NewAlias()
- dir_alias = dir_fss.NewAlias()
- return finder.open(dir_alias, items=[file_alias])
-
- def Print(file):
- """Print a file thru the finder. Specify file by name or fsspec"""
- finder = _getfinder()
- fss = macfs.FSSpec(file)
- vRefNum, parID, name = fss.as_tuple()
- dir_fss = macfs.FSSpec((vRefNum, parID, ''))
- file_alias = fss.NewAlias()
- dir_alias = dir_fss.NewAlias()
- return finder._print(dir_alias, items=[file_alias])
-
- def copy(src, dstdir):
- """Copy a file to a folder"""
- finder = _getfinder()
- src_fss = macfs.FSSpec(src)
- dst_fss = macfs.FSSpec(dstdir)
- src_alias = src_fss.NewAlias()
- dst_alias = dst_fss.NewAlias()
- return finder.copy_to(dst_alias, _from=[src_alias])
-
- def move(src, dstdir):
- """Move a file to a folder"""
- finder = _getfinder()
- src_fss = macfs.FSSpec(src)
- dst_fss = macfs.FSSpec(dstdir)
- src_alias = src_fss.NewAlias()
- dst_alias = dst_fss.NewAlias()
- return finder.move_to(dst_alias, _from=[src_alias])
-
- def sleep():
- """Put the mac to sleep"""
- finder = _getfinder()
- finder.sleep()
-
- def shutdown():
- """Shut the mac down"""
- finder = _getfinder()
- finder.shut_down()
-
- def restart():
- """Restart the mac"""
- finder = _getfinder()
- finder.restart()
-
-
- def main():
- print 'Testing launch...'
- fss, ok = macfs.PromptGetFile('File to launch:')
- if ok:
- result = launch(fss)
- if result:
- print 'Result: ', result
- print 'Press return-',
- sys.stdin.readline()
- print 'Testing print...'
- fss, ok = macfs.PromptGetFile('File to print:')
- if ok:
- result = Print(fss)
- if result:
- print 'Result: ', result
- print 'Press return-',
- sys.stdin.readline()
- print 'Testing copy...'
- fss, ok = macfs.PromptGetFile('File to copy:')
- if ok:
- dfss, ok = macfs.GetDirectory()
- if ok:
- result = copy(fss, dfss)
- if result:
- print 'Result:', result
- print 'Press return-',
- sys.stdin.readline()
- print 'Testing move...'
- fss, ok = macfs.PromptGetFile('File to move:')
- if ok:
- dfss, ok = macfs.GetDirectory()
- if ok:
- result = move(fss, dfss)
- if result:
- print 'Result:', result
- print 'Press return-',
- sys.stdin.readline()
- import EasyDialogs
- print 'Testing sleep...'
- if EasyDialogs.AskYesNoCancel('Sleep?') > 0:
- result = sleep()
- if result:
- print 'Result:', result
- print 'Press return-',
- sys.stdin.readline()
- print 'Testing shutdown...'
- if EasyDialogs.AskYesNoCancel('Shut down?') > 0:
- result = shutdown()
- if result:
- print 'Result:', result
- print 'Press return-',
- sys.stdin.readline()
- print 'Testing restart...'
- if EasyDialogs.AskYesNoCancel('Restart?') > 0:
- result = restart()
- if result:
- print 'Result:', result
- print 'Press return-',
- sys.stdin.readline()
-
- if __name__ == '__main__':
- main()
-
-